package com.web.dao;

import com.jdbc.DataSourceTool;
import com.web.bean.PageModel;
import com.web.bean.性别统计课程平均成绩bean;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class 按性别统计课程平均分 {
    public List<性别统计课程平均成绩bean> querysexkcavg(String search, PageModel pageModel) {
        //创建一个集合用于保存数据
        List<性别统计课程平均成绩bean> list = new ArrayList<>();
        //--获取数据库链接
        Connection connection = DataSourceTool.getConnection();
        // -- 定义sql语句  占位符表示一个动态数据的入参
        String sql = " select s.性别,k.课程名称,avg(成绩) from 学生情况 s\n" +
                ",选课及成绩 c,课程档案 k where k.课程名称 like ? and c.课程代号=k.课程代号 and c.学号=s.学号  group by s.性别,k.课程名称 limit ?,?;";

        try {
            //--通过链接对象获取sql语句对象
            PreparedStatement ps = connection.prepareStatement(sql);//提供sql语句
            ps.setString(1,"%"+search+"%");
            ps.setInt(2,pageModel.getStartIndex());
            ps.setInt(3,pageModel.getPageSize());
            //--通过sql语句对象执行sql操作
            ResultSet rs = ps.executeQuery();
            //遍历结果集
            while(rs.next()){
                //创建一个学生情况类型的数据用于获取数据库中相同类型的数据
                性别统计课程平均成绩bean stu=new 性别统计课程平均成绩bean();
                stu.setSex(rs.getString(1));
                stu.setCourse(rs.getString(2));
                stu.setAvg(rs.getDouble(3));

                //把查询结果放入集合中
                list.add(stu);

            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        } finally {
            DataSourceTool.closeConnection(connection);
        }

        return list;
    }





    public int queryStudentCount(String search) {
        //--获取数据库链接
        Connection connection = DataSourceTool.getConnection();
        // -- 定义sql语句  占位符表示一个动态数据的入参
        String sql = "select count(*) from 课程档案 where 课程名称 like ?;";
        try {
            //--通过链接对象获取sql语句对象
            PreparedStatement ps = connection.prepareStatement(sql);//提供sql语句
            //
            ps.setString(1, "%"+search+"%");
            //--通过sql语句对象执行sql操作
            ResultSet result = ps.executeQuery();
            //遍历结果集
            if (result.next()) {//判断是否有下一条记录
                //返回结果
                return result.getInt(1);
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        } finally {
            //--关闭链接
            DataSourceTool.closeConnection(connection);
        }
        // 返回0
        return 0;
    }
}
